<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <script>
    // function Student(name, height) {
    //     this.name = name;
    //     this.height = height;
    //     this.say = function () {
    //         console.log(this.say);
    //     }
    // }
    // var student = new Student('zhangsan', 180);





    // function Person(name, age) {
    //     this.name = name;
    //     this.age = age;
    //     return {};
    // }
    // var person = new Person('xiaozhang', 18);
    // var person1 = new Person('xiaoli', 17);




    // function Person(name, age) {
    //     this.name = name;
    //     this.age = age;
    //     return 123;
    // }
    // var person = new Person('xiaozhang', 18);
    // var person1 = new Person('xiaoli', 17);



    // var arr = [1, 2, 3, 4, 5];
    // arr.length = 2;
    // console.log(arr); // [1, 2]
    // var str = 'abcd';
    // str.length = 2; // 隐式的加上 new string('abcd').length = 2; 然后delete
    // // 字符串自带length属性
    // console.log(str); // 'abcd'
    // console.log(str.length); // 4



    // var str = 'abc';
    // str += 1; // 'abc1'
    // var test = typeof str; // test == 'string';
    // if (test.length == 6) {
    //     test.sign = 'typeof的返回结果可能为string'; // /这是原始值,原始值要赋属性值需要调用包装类，赋了跟没赋值是一样的，new String(test).sign=’xxx’;
    // }
    // console.log(test.sign); // undefined





    // function Person(name, age, sex) {
    //     var a = 0;
    //     this.name = name;
    //     this.age = age;
    //     this.sex = sex;
    //     function sss() {
    //         a++;
    //         console.log(a);
    //     }
    //     this.say = sss;
    // }
    // var person = new Person();
    // person.say(); // 1
    // person.say(); // 2
    // var person1 = new Person();
    // person1.say(); // 1




    // var x = 1, y = z = 0;
    // function add(n) {
    //     return n = n + 1;
    // }
    // y = add(x);
    // function add(n) {
    //     return n = n + 3;
    // }
    // z = add(x);
    // console.log(x); // 1
    // console.log(y); // 4
    // console.log(z); // 4
    // // 同一个函数，后面会覆盖前面的 function add 会提升到前面



    // function b(x, y, a) {
    //     // arguments[2] = 10;
    //     // alert(a); // 10
    //     a = 10;
    //     alert(arguments[2]); // 10
    // }
    // b(1, 2, 3);


    // var obj = Object.create(原型);
    var obj = Object.create(null);
    var o = {};
    var obj1 = Object.create(o);
  </script>
</body>

</html>